#ifndef KLIPPY_PRINTER_OBJECT_H
#define KLIPPY_PRINTER_OBJECT_H

#include <memory>
#include <string>

namespace klippy {

class Printer;

class PrinterObject {
public:
    explicit PrinterObject(Printer* printer);
    virtual ~PrinterObject() = default;

    virtual void initialize() = 0;
    virtual void shutdown() = 0;

    Printer* get_printer() const { return printer_; }

private:
    Printer* printer_;
};

} // namespace klippy

#endif // KLIPPY_PRINTER_OBJECT_H